<template>
	<view>
		<Amap ref="mapRef" />

		<button @click="locate">位置打卡</button>
	</view>
</template>

<script setup>
	import Amap from './components/Amap.vue'
	import {
		positionSignInAPI
	} from '../../http/card.js';
	  import { useRoute } from 'vue-router';
	    import { ref } from 'vue';
		  import { get } from '../../http/request';


	const route = useRoute();
	const activityId = route.query.id;
	const status = Number(route.query.status);



	const mapRef = ref(null)

	// 定位到当前位置
	async function locate() {
		//   try {
		//     const res = await uni.getLocation({ type: 'gcj02' }) // 高德坐标系
		//     mapRef.value.setCenter(res.longitude, res.latitude)
		//   } catch (err) {
		//   console.error('定位错误:', err)
		//   uni.showToast({ title: `定位失败: ${err.message}`, icon: 'none' })
		// }
		// 获取当前位置
		await uni.getLocation({
			type: 'wgs84',
			altitude: true,
			success: async (res) => {
				console.log('当前位置：', res);
				mapRef.value.setCenter(res.longitude, res.latitude)
				try {
					// 提交打卡信息
					await positionSignInAPI(activityId, "3450", res.latitude, res
						.longitude);
					uni.hideLoading();
					uni.showToast({
						title: '打卡成功',
						icon: 'success'
					});
				} catch (error) {
					uni.hideLoading();
					console.error('打卡失败：', error);
					uni.showToast({
						title: '打卡失败',
						icon: 'none'
					});
				}
			},
			fail: (err) => {
				uni.hideLoading();
				console.error('获取位置失败：', err);
				uni.showToast({
					title: '获取位置失败，请检查权限设置',
					icon: 'none'
				});
			}
		})
	}
</script>